package deneme;

import java.io.Serializable;
import java.util.ArrayList;

import javax.faces.event.ActionEvent;

/**
 * AutoComplete sınıfı, meslek isimlerinin kullanıcıya web sayfası üzerinden önerebilmeyi sağlar.
 * 
 * @version 4.3 05 Aus 2013
 * @author etmen
 */
public class AutoComplete implements Serializable {
	/*AutoComplete sınıfı, sınıfın seri numarasını,  jobs isimli veri yapısını ve ilgili metodları içerir.*/
	
	/**Sınıfın seri numarasını temsil eder. */
	private static final long serialVersionUID = -5815281707291918024L;
	
	/**meslek önermek için kullanıcıdan ilgili mesleğin bir kısmı alınır ve bu sahada saklanır*/
	private String curr="" ;
	
	/**meslek önermek için kullanıcıdan ilgili mesleğin bir kısmı alınır ve bu sahada saklanır*/
	private String curr2="" ;
	
	/**jobs veri yapısı, içerisinde String sınıfına ait nesneleri tutar.
	 * Kullanıcının eklediği veriler bu yapıda tutulur.
	 * */
	private ArrayList<String> jobs = new ArrayList<String>();
	
	/**curr sahasına erişimi sağlar*/
	public String getCurr() {
		return curr;
	}

	/**curr sahasının değerinin değişimini sağlar*/
	public void setCurr(String curr) {
		this.curr = curr;
	}

	/**Kullanıcıdan alınan kelimelere uygun meslek listesinin hazırlanmasını
	 * ve döndürülmesi sağlar*/
	public ArrayList<String> hashJob(){
	ArrayList<String> currentjobs = new ArrayList<String>();
		for(int i = 0 ; i<jobs.size() ; i++){
			if(jobs.get(i).startsWith(curr) && jobs.get(i).endsWith(curr2) ){
				currentjobs.add(jobs.get(i));
			}				
		}		
		return currentjobs;
	}

	/**jobs sahasına erişimi sağlar*/
	public ArrayList<String> getJobs() {
		return jobs;
	}

	/**jobs sahasının değerinin değiştirilmesini sağlar*/
	public void setJobs(ArrayList<String> jobs) {
		this.jobs = jobs;
	}

	/**curr2 sahasına erişimi sağlar*/
	public String getCurr2() {
		return curr2;
	}

	/**curr2 sahasının değerinin değiştirilmesini sağlar*/
	public void setCurr2(String curr2) {
		this.curr2 = curr2;
	}
	
	/**kullanıcıdan alınan meslek bilgisinin jobs veri yapısına eklenmesini sağlar*/
	public void jobAdd(ActionEvent event) {
		
		jobs.add((String) event.getComponent()
				.getAttributes().get("name"));

	}
}
